﻿#ifndef BROKER_H
#define BROKER_H


#include <QStack>

#include "orderintf.h"

/**
 * @brief The Broker class 命令对象的调用者，命令对象也可以由应用场景AppSence直接调用，
 * 但是命令的历史记录及撤销恢复需要在这里实现，相当于一个CommandHistory的角色
 */
class Broker
{
public:
    Broker();

    void takeOrder(OrderIntf *order);

    void redoOrder();

    void undoOrder();

private:
    QStack<OrderIntf *> orderRedo;
    QStack<OrderIntf *> orderUndo;
};

#endif // BROKER_H
